package org.facyt.vacas.services.impl;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.facyt.vacas.dao.ComponenteDAO;
import org.facyt.vacas.entities.vacas.Componente;
import org.facyt.vacas.services.ComponenteService;
import org.facyt.vacas.util.Constantes;

public class ComponenteServiceImpl implements ComponenteService {

	private ComponenteDAO componenteDao;
	
	public ComponenteDAO getComponenteDao() {
		return componenteDao;
	}

	public void setComponenteDao(ComponenteDAO componenteDao) {
		this.componenteDao = componenteDao;
	}
	
	
	public List<Componente> getTodosComponentes() throws Exception {

		List<Componente> listaresultado = new ArrayList<Componente>();
		
		List<Componente> lista = componenteDao.getAllComponente();
		
		Iterator<Componente> iterador = lista.iterator();
//		System.out.println("afuera");
		while(iterador.hasNext())
		{	
			Componente mp = (Componente) iterador.next();
			listaresultado.add(mp);
		}
		
		return lista;
		
	}


	public List<Componente> getDiferentesComponentes(long idmp) throws Exception {

		List<Componente> listaresultado = new ArrayList<Componente>();
		
		List<Componente> lista = componenteDao.getDiferentesComponente(idmp);
		
		Iterator<Componente> iterador = lista.iterator();
//		System.out.println("afuera");
		while(iterador.hasNext())
		{	
			Componente mp = (Componente) iterador.next();
			listaresultado.add(mp);
		}
		
		return lista;
		
	}
	
	public Componente getComponenteById(Integer id) throws Exception {
	return (Componente) componenteDao.getComponenteById(id);
		
	}

	public boolean esProteinaBruta(Componente c) throws Exception {
		//PC = Proteína id= 7
		return c.getId().intValue() == Constantes.componente.PC.intValue();
	}

	public boolean esFDNForraje(Componente c) throws Exception {
		//FDN del forraje id= 64
		return c.getId().intValue() == Constantes.componente.FDN_Forraje.intValue();
	}

	public boolean esFDN(Componente c) throws Exception {
		//FDN total id=4
		return c.getId().intValue() == Constantes.componente.FDN.intValue();
	}

	public boolean esNFCDigest(Componente c) throws Exception {
		//NFC Digest id=51
		return c.getId().intValue() == Constantes.componente.NFC_Digest.intValue();
	}

	public boolean esRDP(Componente c) throws Exception {
		//id = 58;"PDR"
		return c.getId().intValue() == Constantes.componente.PDR.intValue();
	}

	public boolean esRUP(Componente c) throws Exception {
		//id=14;"RUP Digest"
		return c.getId().intValue() == Constantes.componente.RUP_Digest.intValue();
	}

	public boolean esGrasa(Componente c) throws Exception {
		// TODO Auto-generated method stub
		return false;
	}
	
	
}